package org.jgs2007.onemall.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 订单实体类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Order implements Serializable {

    private Integer id;

    // 用户id
    private Integer userId;

    // 订单编号
    private String orderSn;

    // 订单状态
    private String orderStatus;

    // 收货人名称
    private String consignee;

    // 收货人手机号
    private String mobile;

    // 收货人地址
    private String address;

    // 用户留言备注
    private String message;

    // 快递费
    private Double freightPrice;

    // 优惠卷减免
    private Double couponPrice;

    // 商品费用
    private Double orderPrice;

    // 实际费用
    private Double actualPrice;

    // 付款编号
    private String payId;

    // 付款时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    // 物流编号
    private String skipId;

    // 物流公司
    private String skipChannel;

    // 发货时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date skipTime;

    // 确认收货时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date confirmTime;

    // 订单创建时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date addTime;

    // 订单更新时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    // 逻辑删除(伪删除：如要使用需建一张表保存删除信息 )
    private Short deleted;
}
